Gigabit-Capable Passive Optical Network (GPON) technology is an important branch of PON technology. Similar to other PON technology, GPON is also a passive optical access technology using point-to-multipoint topology. FIG. 1 shows topology of a GPON system. The GPON is composed of an office-side Optical Line Terminal (OLT), a user-side Optical Network Unit (ONU) and an Optical Distribution Network (ODN), and generally uses a point-to-multipoint network structure. The ODN is composed of a single-mode optical fiber, an optical divider and an optical connector and other passive optical devices, providing an optical transmission medium for the physical connection between the OLT and the ONU.
In the GPON system, data transmission in a downlink direction (from the OLT to the ONU) applies a broadcast mode. Each ONU receives all frames respectively and obtains a frame belonging to itself according to an ONU-ID, a GPON Encapsulating Method port ID (GEM-port ID) and an allocation ID. For data transmission in an upstream direction (from the ONU to the OLT), since each ONU needs to share a transmission medium, each ONU transmits upstream data within a timeslot which is allocated to itself by the OLT through an Upstream Bandwidth Map (US BWmap) domain. FIG. 2 shows an US BWmap structure; the US BWmap is composed of N Allocation Structures, each of which is composed of an Allocation Identifier (Alloc-ID) domain, a Flags domain, a StartTime domain, a StopTime domain and a Cyclic Redundancy Check (CRC) domain; wherein the Alloc-ID is generally a Transmission Container (T-CONT) ID; there are 12 bits (bits 11 to 0) in the Flags domain, bit 10 being used for notifying the ONU to transmit a Physical Layer Operations Administration and Maintenance (PLOAM) message within the upstream bandwidth, and bits 6 to 0 being reserved.
When receiving one Allocation Structure, the ONU performs a CRC check on data in the received Allocation Structure if the ONU determines that the Allocation Structure is allocated to itself according to an Alloc-ID. If the check result is correct, the ONU starts to transmit data in a T-CONT whose bandwidth allocation ID is Alloc-ID from the StartTime indicated by the Allocation Structure and stops transmitting data at the StopTime. To prevent a conflict among upstream data sent by different ONUs, there is a guard time among the upstream data sent by different ONUs. Each ONU transmits upstream data in a continuous period allocated by the OLT. The continuous period is called an upstream burst slot of an ONU. FIG. 3 shows a structure of data transmitted in an upstream burst slot by an ONU. The data sent by the ONU in an upstream burst slot includes a preamble, a delimiter, an Bit Interleaved Parity (BIP) domain, an ONU ID, an indication domain, a PLOAM message and n groups of Dynamic Bandwidth Reports upstream (DBRu) and payloads (n is an integer and n≧0), wherein the PLOAM message as well as the first group of DBRu and payload are the first allocated time slot allocated by the OLT in a downlink frame for the ONU, corresponding to one Allocation Structure in the BWmap in the OLT downlink frame; the start time of the allocated time slot is the StartTime in the Allocation Structure, and the stop time of the allocated time slot is the StopTime in the Allocation Structure.
To check and correct an error code existing in upstream data transmitted by the ONU and received by the OLT, the upstream data transmitted by the ONU undergoes Forward Error Correction (FEC) encoding, and is transmitted to the OLT subsequently. The range of the FEC encoding is as shown in FIG. 3, starting from the BIP domain of the upstream burst slot and ending at the domain of the last group of payloads. Reed-Solomon (RS) encoding is applied to FEC-related technology in existing GPON systems. The RS encoding is block-based, which takes a data block with a fixed size and adds additional redundancy bits at the ending of the data block. The data block with a fixed size and the added additional redundancy bits form a code word. The data in the protection range of the FEC, which has undergone the FEC encoding by the method above, is transmitted to the OLT. An FEC decoder at the OLT uses these additional bits to process received data streams, discover errors, correct the errors and obtain original data transmitted by the ONU.
In the RS encoding applied above, after an FEC encoder of the ONU takes out m data blocks with a fixed size, the length of the remaining data is generally smaller than the fixed size. To make the length of the remaining data equal to the fixed size, an additional “0” byte (“0” padding byte) needs to be added in front of the remaining data. The encoder calculates check bytes for the remaining data added with the “0” byte. The ONU removes the added “0” byte subsequently, and transmits the remaining data and the check bytes to the OLT. After receiving the data transmitted by the ONU, for the remaining data, the OLT inserts before decoding the additional “0” byte in the front of the code word. After the decoding, the added “0” byte is removed over again. Thus, it can be seen that the process of adding and removing a “0” byte is relatively cumbersome, which increases the complexity of processing FEC-encoded data by the OLT and the ONU.